//1.导入第三方
const express=require('express')
//解析静态资源图片时,需要用到绝对路径
const path=require('path')
//3.导入解析第三方
const body =require('body-parser')
//4.导入开启跨域第三方
const cors=require('cors')
//7.导入验证token第三方
const {expressjwt}=require('express-jwt')
//1.导入配置信息
const {port,secret,pass}=require('./config/index')
//2.导入总路由表
const router=require('./routes/index')
//5.导入全局中间件
const {empty,error,info} =require('./middleware/index') 
//6.导入数据库连接文件
const {connect}=require('./db/index')
//1.创建一个服务
const app=express()
//6.创建完服务立马连接数据库
connect()
//4.开启跨域配置
app.use(cors())
//配置静态资源（主要是图片）
app.use('/public',express.static(path.resolve(__dirname,'./public/')))
//3.配置解析请求体
app.use(body({extended:false}))
app.use(body.json())
//5.记录信息中间件
app.use(info)
//7.验证token
app.use(expressjwt({
    secret:secret,
    algorithms:['HS256']
}).unless({path:pass}))
//2.挂载总路由表
app.use(router)
//5.全局空路由中间件
app.use(empty)
//5.全局错误中间件
app.use(error)


//1.配置监听端口号
app.listen(port,()=>{console.log(`服务器开启成功，我正在监听${port}端口号！！！`);})